From: Benjamin Otte Date: Wed, 16 Sep 2015 20:56:56 +0000 (+0200) Subject: sizegroup: Don't invalidate over resize containers. X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~39^2~5072 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=85ab8ad00128fc095fdfb3d62142e58556ad5ee7;p=gtk%2B3.0.git sizegroup: Don't invalidate over resize containers. Before this commit, a widget tree like this: Window AnyContainer (part of SizeGroup1) GtkClutterEmbed SomeWidget when calling gtk_widget_queue_resize(SomeWidget), would invalidate SizeGroup1, when it should have stopped at the GtkClutterEmbed (which is a RESIZE_IMMEDIATE child). --- diff --git a/gtk/gtksizegroup.c b/gtk/gtksizegroup.c index d6276a90f5..ef29358c96 100644 --- a/gtk/gtksizegroup.c +++ b/gtk/gtksizegroup.c @@ -237,7 +237,7 @@ queue_resize_on_widget (GtkWidget *widget, parent = widget; - while (parent) + do { if (widget == parent) real_queue_resize (widget); @@ -271,8 +271,14 @@ queue_resize_on_widget (GtkWidget *widget, } } +G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + if (GTK_IS_RESIZE_CONTAINER (parent)) + break; +G_GNUC_END_IGNORE_DEPRECATIONS; + parent = _gtk_widget_get_parent (parent); } + while (parent); g_hash_table_destroy (widgets); g_hash_table_destroy (groups);